package com.yunxin.core.domain.model.product;

/**
 * @author zero°
 * @since 2023-07-13
 */
public interface ProductInfoRepository {

    /**
     * 保存
     * @param productInfo productInfo
     * @return boolean
     */
    boolean saveProductInfo(ProductInfo productInfo);

    /**
     * 更新
     * @param productInfo productInfo
     * @return boolean
     */
    boolean updateProductInfo(ProductInfo productInfo);

    /**
     * 根据商户id及产品名称查询产品id
     * @param merchantId merchantId
     * @param productName productName
     * @return Long
     */
    Long getProductIdByMerchantIdAndProductName(Long merchantId, String productName);


    /**
     * 根据id查询数据
     * @param id id
     * @return Long
     */
    ProductInfo getProductInfoById(Long id);

    /**
     * 根据产品id获取产品上级状态判断
     * @param id id
     * @return
     */
    boolean getProductSaveResult(Long id);

    /**
     * 更新产品禁止状态
     * @param updateProductInfoDO
     */
    boolean updateProductProhibitStatus(ProductInfo updateProductInfoDO);
}
